package bavaria.hightech.zeitgeber;

import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

public class Zeitgeber {
	
	private static Zeitgeber zeitgeber = null;
	private Calendar c;
	private static final int TICKER = 60*60*24;
	private Timer timer;
	private Uhranzeige uhr;
	
	private Zeitgeber(){
		uhr = new Uhranzeige();
		timer = new Timer();
		c = Calendar.getInstance();
		startTiming();
		uhr.start();
		
	}
	
	public static Zeitgeber getInstance(){
		if(zeitgeber == null)
			zeitgeber = new Zeitgeber();
		return zeitgeber;
	}
	
	public void startVerzinsen(int verzinsperiode, TimerTask task){
		timer.scheduleAtFixedRate(task, 0, (long)(86400.0/TICKER*(verzinsperiode*1000)));
	}
	
	
	private void startTiming() {
        timer.scheduleAtFixedRate(
            new TimerTask()  {
                public void run()  {
                   Zeitgeber.this.c.add(Calendar.SECOND, TICKER);
                   
                }
            },
            0,
            1000);
    }
	
	public Calendar getCalendar(){
		return (Calendar) c.clone();
	}

}


